/**
 * 
 */
package com.sun.java.lang;

import java.lang.reflect.Field;

/**
 * @author Jun
 *  Java 的 enum 是 singleton class (只能有一个 instance)。
 *  Java 通过编译器和 JVM 联手来防止enum 产生超过一个class：
 *  不能利用 new、clone()、de-serialization、以及 Reflection API 来产生enum 的 instance。 
 */
enum Color {
	red,blue,green,black,white;
	}

class RefColor {
	    public Color color;
}

public class TestEnum {

	    public static void main(String[] args) {
	        try {
	            RefColor obj=new RefColor();            
	            Class clazz=Class.forName("Color");
	            Field field=obj.getClass().getDeclaredField("color");
	            field.set(obj, Enum.valueOf(clazz, "red"));
	            System.out.println(obj.color);
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
	        
	    }

}